package NetWork;

/**
 * @className: Test
 * @author: 芃
 * @description: 网络原理初识
 * @date: 2024/6/23 11:44
 */
/*
      TCP/IP五层协议栈 应用层->传输层->网络层->数据链路层->物理层
      应用层：传输的数据在应用程序中如何使用
      传输层：关注的是通信的起点终点
      网络层：关注的是通信中的路线规划
      数据链路层：关注的是相邻节点之前的通信细节
      物理层：网络通信的基础设施
*/
/*
 * 封装/分用
 * 封装的过程：
 * 以QQ发送hello为例
 * 真实数据包含的信息：发送人QQ、接收人QQ、消息内容、发送时间
 *
 * 应用层 针对真实数据进行打包，生成数据载荷
 * 传输层 针对载荷进一步封装，生成TCP/UDP报文段
 * 网络层 针对报文段进一步封装，生成IP数据报
 * 数据链路层 针对数据报进一步封装，生成以太网数据帧（包括帧头和帧尾）
 * 物理层 针对数据帧进行编码，生成01序列
 * 封装的结果是一串01序列，称为数据包
 * ※ 以太网数据帧头+IP报头+TCP/UDP协议头+载荷+以太网数据帧尾=数据包
 *
 * 分用/解封装
 * 分用的过程：
 * 物理层接收到01序列，进行解码，生成数据帧
 * 数据链路层解除数据帧的封装，提取出IP数据报
 * 网络层解除IP数据报的封装，提取出TCP/UDP报文段
 * 传输层解除TCP/UDP报文段的封装，提取出载荷
 * 应用层解除载荷的封装，提取出真实数据
 *
 * 真实的传输场景要比上述的复杂，由于存在交换机，交换机的转发过程也会影响到分用过程
 * 网络中的相邻节点拿到数据包之后，要进行分用，物理层接收到01序列，进行解码，生成数据帧
 * 数据链路层解除数据帧的封装，重新生成以太网数据帧（包括帧头和帧尾）将其替换到原数据帧的位置，再重新打包给物理层进行编码转发
 *
 * 如果是路由器，相比于交换机还要更为麻烦一点
 * 物理层的作用是一致的，只不过是数据链路层对上述数据进行解析，拿到载荷（除过帧头帧尾的部分）交给网络层 -》IP协议
 * IP协议会进一步的对这个数据进行解析，取出载荷（除过IP头的部分）
 * 取出的数据，IP协议重新进行封装，也就是新的IP数据报，再交给数据链路层，生成新帧头帧尾（都是替换原位置）
 * 最后重新打包给物理层进行编码转发
*/
/**
 * 包（packet） IP数据包
 * 段（segment) TCP数据段
 * 报（database) UDP数据报
 * 帧（frame） 以太网数据帧
*/
public class Test1 {
}
